home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: New Zealand Amiga Users Group
/
New Zealand Amiga Users Group Newsdisk v25 (1989-08)(NZAmigaUG).zip
/
New Zealand Amiga Users Group Newsdisk v25 (1989-08)(NZAmigaUG).adf
/
StrucBrowser
/
sb.src.zoo
/
SBScreen.c
< prev
next >
Wrap
C/C++ Source or Header
|
1988-06-22
|
4KB
|
115 lines
/************************************************************************
* *
* SBScreen *
* *
*************************************************************************/
/* include not needed for Aztec C using provided makefile */
#include "sb:sb.h"
extern int level;
extern void PrScreen2();
void PrScreen(string, screen) char *string; struct Screen *screen;
{
static struct StructData structdata[] = {
{ " NextScreen", "struct Screen *", 5, PTRSIZE },
{ " FirstWindow", "struct Window *", 5, PTRSIZE },
{ "-LeftEdge", "SHORT", 2, INTSIZE },
{ "-TopEdge", "SHORT", 2, INTSIZE },
{ "-Width", "SHORT", 2, INTSIZE },
{ "-Height", "SHORT", 2, INTSIZE },
{ "-MouseY", "SHORT", 2, INTSIZE },
{ "-MouseX", "SHORT", 2, INTSIZE },
{ " Flags", "USHORT", 12, INTSIZE },
{ " Title", "UBYTE *", 4, PTRSIZE },
{ " DefaultTitle", "UBYTE *", 4, PTRSIZE },
{ "-BarHeight", "BYTE", 3, BYTESIZE },
{ "-BarVBorder", "BYTE", 3, BYTESIZE },
{ "-BarHBorder", "BYTE", 3, BYTESIZE },
{ "-MenuVBorder", "BYTE", 3, BYTESIZE },
{ "-MenuHBorder", "BYTE", 3, BYTESIZE }
};
static char *flagnames[8] = {
"WBENCHSCREEN", "CUSTOMSCREEN", NULL, NULL,
"SHOWTITLE", "BEEPING", "CUSTOMBITMAP", NULL
};
int sum, choice = -1;
ULONG bits;
level++;
while (choice) {
sum = SetOptionText(string, structdata,
(APTR)screen, DATASIZE, 0);
switch (choice = GetChoice(MAXGADG + 1)) {
case 1:
if (screen->NextScreen)
PrScreen("The next screen in Intuition's list", screen->NextScreen);
break;
case 2:
if (screen->FirstWindow)
PrWindow("The screen's first window", screen->FirstWindow);
break;
case 9:
if ((bits = screen->Flags) & 2)
bits ^= 1;
FlagPrint("The screen's flags", flagnames, bits);
break;
case 10:
PrString("The Screen's Title", screen->Title);
break;
case 11:
PrString("The Screen's Default Title", screen->DefaultTitle);
break;
case MOREGADG:
PrScreen2("Screen members (page 2)", screen, sum);
break;
}
}
level--;
}
void PrScreen2(string, screen, offset)
char *string; struct Screen *screen; int offset;
{
static struct StructData structdata[] = {
{ "-WBorTop", "BYTE", 3, BYTESIZE },
{ "-WBorLeft", "BYTE", 3, BYTESIZE },
{ "-WBorLeft", "BYTE", 3, BYTESIZE },
{ "-WBorBottom", "BYTE", 3, INTSIZE },
{ " Font", "struct TextAttr *", 5, PTRSIZE },
{ "(ViewPort", "struct ViewPort)", 0, SZ(ViewPort) },
{ " RastPort", "struct RastPort ", 0, SZ(RastPort) },
{ " BitMap", "struct BitMap", 0, SZ(BitMap) },
{ "(LayerInfo", "struct Layer_Info)", 0, SZ(Layer_Info)},
{ " FirstGadget", "struct Gadget *", 5, PTRSIZE },
{ "-DetailPen", "UBYTE", 13, BYTESIZE },
{ "-BlockPen", "UBYTE", 13, BYTESIZE },
{ "-SaveColor0", "USHORT", 12, INTSIZE },
{ "(BarLayer", "struct Layer *)", 5, PTRSIZE },
{ "(ExtData", "UBYTE *)", 5, PTRSIZE },
{ "(UserData", "UBYTE *)", 5, PTRSIZE },
};
int sum, choice = -1;
level++;
while (choice) {
sum = SetOptionText(string, structdata, (APTR)screen, DATASIZE, offset);
switch (choice = GetChoice(DATASIZE)) {
case 5:
if (screen->Font)
PrTextAttr("Structure TextAttr",screen->Font);
break;
case 7:
PrRastPort("The screen's RastPort", &screen->RastPort);
break;
case 8:
PrBitMap("The screen's BitMap", &screen->BitMap);
break;
case 10:
if (screen->FirstGadget)
PrGadget("The screen's first gadget", screen->FirstGadget);
break;
}
}
level--;
}